package com.test.wade.testjsoup;

import android.graphics.Bitmap;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ProgressBar;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.List;

public class MainActivity extends AppCompatActivity implements Runnable, View.OnClickListener{
    private WebView mWebView;
    private Button amendTitle,amendContent,insertTxt;
    private Thread thread;
    private List<TextNode> list;
    private Document document;
    private ProgressBar progressBar;
    private static final String URL_HTML = "https://m.hupu.com/nba/news/2361753.html";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        thread = new Thread(this);
        thread.start();
//        String str = getResources().getString(R.string.text);
//        Log.v("8888","字符串长度为：" + str.length());
    }

    private void initView() {
        amendTitle = findViewById(R.id.amend_title);
        amendTitle.setOnClickListener(this);
        amendContent = findViewById(R.id.amend_content);
        amendContent.setOnClickListener(this);
        insertTxt = findViewById(R.id.insert_other);
        insertTxt.setOnClickListener(this);
        progressBar = findViewById(R.id.progressBar);
        mWebView = findViewById(R.id.my_web_view);
        //开启JavaScript支持
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
//        mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");

        //设置webView是否支持使用屏幕控件或手势进行缩放，默认是true，支持缩放
        mWebView.getSettings().setSupportZoom(true);

        //设置WebView是否使用其内置的变焦机制，该机制集合屏幕缩放控件使用，默认是false，不使用内置变焦机制。
        mWebView.getSettings().setBuiltInZoomControls(true);

        //设置是否开启DOM存储API权限，默认false，未开启，设置为true，WebView能够使用DOM storage API
        mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setDatabaseEnabled(true);
        mWebView.getSettings().setAppCacheEnabled(true);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        //触摸焦点起作用如果不设置，则在点击网页文本输入框时，不能弹出软键盘及不响应其他的事件。
        mWebView.requestFocus();

        //设置此属性，可任意比例缩放，设置webview推荐使用的窗口
        mWebView.getSettings().setLoadWithOverviewMode(true);
        //不显示缩放按钮
        mWebView.getSettings().setDisplayZoomControls(false);
        //加载链接
        mWebView.loadUrl("https://m.hupu.com/nba/news/2361753.html");

        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                //拦截url跳转，在里面添加点击链接跳转或者操作
                //拦截url跳转，在里面添加点击链接跳转或者操作

                return true;
            }

        });
    }

    @Override
    public void run() {
        try {
            document = Jsoup.connect(URL_HTML)
                    .timeout(15000)
                    .get();
            Log.v("8899", "获取到的网页标题：" + document.title());

        } catch (IOException e) {
            e.printStackTrace();
            Log.v("8899", "获取网页失败：" + e.getMessage());
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.amend_title:
                Element element = document.selectFirst("h1");
                //可以打印确定一下是否为文章标题
                Log.v("8899", "element包含的文本内容：" + element.text());
                element.text("这是我修改过的标题，哈哈哈……");
                mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);
                break;
            case R.id.amend_content:
                Elements elements = document.select("p");
                for (int i = 0; i < elements.size(); i++) {
                    //打印每段文章的内容
//                    elements.text();
                    elements.get(i).appendText("《这段内容结束》");
                    mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);
                }
                break;
            case R.id.insert_other:
                Element element2 = document.selectFirst("h1");
                //可以打印确定一下是否为文章标题
                Element element1 = element2.clone();
                element1.text("This is the title's translator");
                element2.append(element1.outerHtml());
                mWebView.loadDataWithBaseURL(URL_HTML, document.outerHtml(), "text/html", "utf-8", null);
                break;
        }
    }
}














